package com.fita.admin.service.agent;

import com.demo2do.core.entity.page.Page;
import com.fita.admin.entity.search.agent.AgentAuditSearch;
import com.fita.admin.entity.security.Login;
import com.fita.admin.service.DataService;
import com.fita.entity.agent.AgentApply;
import com.fita.entity.agent.AgentApplyStatus;
import com.fita.entity.agent.AgentCompany;
import com.fita.entity.principal.Principal;

import java.util.List;

/**
 * 
 * @author 宋剑宏
 *
 */
public interface AgentAuditService extends DataService<AgentApply>{

	/**
	 * 
	 * @param status
	 * @return
	 */

	public int count(AgentApplyStatus status, Login login);

	/**
	 * 
	 * @param status
	 * @return
	 */
	public List<AgentApply> list(AgentApplyStatus status, Page page, Login login);
	

	/**
	 * @param search
	 * @return
	 */
	public int count(AgentAuditSearch search, Login login);

	/**
	 * @param seach
	 * @param with
	 * @return
	 */
	public List<AgentApply> search(AgentAuditSearch seach, Page with, Login login);
	
	/**
	 * 
	 * @param login
	 * @return
	 */
	 public List<Principal> list(Login login, Page page, Long districtId);
	
	/**
	 * @param id
	 */
	public void reject(Long id);
	
	/**
	 * 
	 * @param agentApply
	 * @param district
	 */
	public void edit(Long id, AgentApply agentApply);
	
	/**
	 * 
	 * @param id
	 */
	public void activate(Long id);
	
	/**
	 * 
	 * @param id
	 */
	public void verified(Long id);
	
	/**
	 * 
	 * @param id
	 */
	public void principal(Long id, Long principalId);
	
	
	/**
	 * 
	 * @param id
	 */
	public void district(Long id, Long districtId, AgentApplyStatus status);
	
	/**
	 * 
	 * @param id
	 */
	public void frost(Long id);
	
	/**
	 * 
	 * @param id
	 */
	public void activation(Long id);
	
	/**
	 * 
	 * @return
	 */
	public List<AgentCompany> listAgentCompany();
	
	/**
	 * 
	 * @param id
	 * @param companyId
	 */
	public void assignCompany(Long id, Long companyId);
	

}
